home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / redakcyjne / programy / Gadu-Gadu 8.0 Build 9103 / nowegg.exe / scripts / common.js next >
Text (UTF-16)  |  2009-07-08  |  10KB  |  214 lines

  1. function urlencode(plaintext)
  2. {
  3.     var safechars = "0123456789" + "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "abcdefghijklmnopqrstuvwxyz" + "-_.!~*'()";
  4.     var hex = "0123456789ABCDEF";
  5.  
  6.     var encoded = "";
  7.     for (var i = 0; i < plaintext.length; i++)
  8.     {
  9.         var ch = plaintext.charAt(i);
  10.         if (ch == " ") 
  11.         {
  12.             encoded += "+";
  13.         } 
  14.         else if (safechars.indexOf(ch) != -1)
  15.         {
  16.             encoded += ch;
  17.         } 
  18.         else
  19.         {
  20.             var charCode = ch.charCodeAt(0);
  21.             if (charCode > 255)
  22.             {
  23.                 encoded += "+";
  24.             }
  25.             else
  26.             {
  27.                 encoded += "%";
  28.                 encoded += hex.charAt((charCode >> 4) & 0xF);
  29.                 encoded += hex.charAt(charCode & 0xF);
  30.             }
  31.         }
  32.     }
  33.  
  34.     return encoded;
  35. };
  36.  
  37. function urldecode(encoded)
  38. {
  39.    var hexchars = "0123456789ABCDEFabcdef";
  40.    var plaintext = "";
  41.    var i = 0;
  42.    while (i < encoded.length)
  43.    {
  44.        var ch = encoded.charAt(i);
  45.        if (ch == "+")
  46.        {
  47.            plaintext += " ";
  48.            i++;
  49.        }
  50.        else if (ch == "%")
  51.        {
  52.             if (i < (encoded.length-2) && hexchars.indexOf(encoded.charAt(i+1)) != -1 && hexchars.indexOf(encoded.charAt(i+2)) != -1 )
  53.             {
  54.                 plaintext += unescape(encoded.substring(i,3));
  55.                 i += 3;
  56.             }
  57.             else
  58.             {
  59.                 plaintext += "%[ERROR]";
  60.                 i++;
  61.             }
  62.         }
  63.         else
  64.         {
  65.            plaintext += ch;
  66.            i++;
  67.         }
  68.    }
  69.    return plaintext;
  70. };
  71.  
  72. var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
  73.  
  74. function encodeBase64(input) 
  75. {
  76.    var output = "";
  77.    var chr1, chr2, chr3;
  78.    var enc1, enc2, enc3, enc4;
  79.    var i = 0;
  80.  
  81.    do 
  82.    {
  83.       chr1 = input.charCodeAt(i++);
  84.       chr2 = input.charCodeAt(i++);
  85.       chr3 = input.charCodeAt(i++);
  86.  
  87.       enc1 = chr1 >> 2;
  88.       enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
  89.       enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
  90.       enc4 = chr3 & 63;
  91.  
  92.       if (isNaN(chr2)) 
  93.       {
  94.          enc3 = enc4 = 64;
  95.       } 
  96.       else if (isNaN(chr3)) 
  97.       {
  98.          enc4 = 64;
  99.       }
  100.  
  101.       output = output + keyStr.charAt(enc1) + keyStr.charAt(enc2) + keyStr.charAt(enc3) + keyStr.charAt(enc4);
  102.    } while (i < input.length);
  103.    
  104.    return output;
  105. }
  106.  
  107. function decodeBase64(input) 
  108. {
  109.    var output = "";
  110.    var chr1, chr2, chr3;
  111.    var enc1, enc2, enc3, enc4;
  112.    var i = 0;
  113.  
  114.    // remove all characters that are not A-Z, a-z, 0-9, +, /, or =
  115.    input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
  116.  
  117.    do 
  118.    {
  119.       enc1 = keyStr.indexOf(input.charAt(i++));
  120.       enc2 = keyStr.indexOf(input.charAt(i++));
  121.       enc3 = keyStr.indexOf(input.charAt(i++));
  122.       enc4 = keyStr.indexOf(input.charAt(i++));
  123.  
  124.       chr1 = (enc1 << 2) | (enc2 >> 4);
  125.       chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
  126.       chr3 = ((enc3 & 3) << 6) | enc4;
  127.  
  128.       output = output + String.fromCharCode(chr1);
  129.  
  130.       if (enc3 != 64) 
  131.       {
  132.          output = output + String.fromCharCode(chr2);
  133.       }
  134.       if (enc4 != 64) 
  135.       {
  136.          output = output + String.fromCharCode(chr3);
  137.       }
  138.    } while (i < input.length);
  139.  
  140.    return output;
  141. };
  142.  
  143. /**
  144.  * \brief
  145.  * Usuwa z numeru telefonu + i kod kierunkowy kraju
  146.  */
  147.  
  148. function FlattenPhoneNumber(nr, countryCode)
  149. {
  150.     var retnr = "";
  151.     for (var i = 0; i < nr.length; i++ )
  152.         if (('0') <= nr[i] && nr[i] <= ('9'))
  153.             retnr = retnr + nr[i];
  154.     
  155.     if (retnr.substring(0, countryCode.length) == countryCode)
  156.     {
  157.         retnr = retnr.substring(countryCode.length, retnr.length); ///< odrzucamy kod kraju na poczatku
  158.     }
  159.     
  160.     return retnr;
  161. };
  162.  
  163. /**
  164.  * \brief
  165.  * Funkcja konstruuje stringa który docelowo wysyłany jest w http post jako dane wypełnionego formularza.
  166.  * Przykład:
  167.  * Przerabia tablice: { "id", "2", "nr", "600123456" }
  168.  * na stringa: id=2&nr=600123456
  169.  */
  170. function CreateHTTPRequestContent(requestArray)
  171. {
  172.     if (requestArray.length % 2 != 0)
  173.     {
  174.         return "";   ///< wymagamy tablicy klucz -> wartosc, tak wiec chcemy miec parzysta liczbe elementow
  175.     }
  176.     
  177.     var retString = "";
  178.     var cur = 0;
  179.     while (cur < requestArray.length)
  180.     {
  181.         if (cur > 0)
  182.         {
  183.             retString += "&";
  184.         }
  185.         
  186.         retString += requestArray[cur] + "=" + requestArray[cur + 1];
  187.         cur += 2;
  188.     }
  189.     
  190.     return retString;
  191. };
  192.  
  193. /*
  194.  * /brief
  195.  * Funkcja konvertuje stringa do uinta
  196.  */
  197. function toInt(str)
  198. {
  199.     var i = 0;
  200.     var ret = 0;
  201.     var cyfry = "0123456789";
  202.     var pos = 0;
  203.     while (i < str.length)
  204.     {
  205.         pos = cyfry.search(str.substring(i, i+1));
  206.         if (pos < 0)
  207.             break;
  208.         ret = 10 * ret + pos;
  209.         i++;
  210.     }
  211.     return ret;
  212. };
  213.  
  214.